package com.wing.product.model.entity;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wing.mybatis.common.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description="出库订单表")
@Data
@EqualsAndHashCode(callSuper=true)
@TableName(value = "warehouse_outbound_order")
public class WarehouseOutboundOrder extends BaseEntity<WarehouseOutboundOrder> {

    @TableField(value = "customer_id")
    @Schema(description="客户id")
    private String customerId;

    @TableField(value = "bill_lading_number")
    @Schema(description="提货单")
    private String billLadingNumber;

    @TableField(value = "plannerd_pickup_time")
    @Schema(description="计划提货时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime plannerdPickupTime;

    @TableField(value = "number_of_materials")
    @Schema(description="提货物料数量")
    private Integer numberOfMaterials;

    @TableField(value = "total_gross_weight")
    @Schema(description="总毛重")
    private BigDecimal totalGrossWeight;

    @TableField(value = "total_net_weight")
    @Schema(description="总净重")
    private BigDecimal totalNetWeight;

    @TableField(value = "total_custody_fee")
    @Schema(description="总托管费用")
    private BigDecimal totalCustodyFee;

    @TableField(value = "consignee")
    @Schema(description="提货人")
    private String consignee;

    @TableField(value = "delivery_time")
    @Schema(description="实际提货时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deliveryTime;

    @TableField(value = "delivery_method")
    @Schema(description="提货方式（如：0.汽车运输、1.快递运输）")
    private String deliveryMethod;

    @TableField(value = "delivery_waybil_number")
    @Schema(description="提货运单号")
    private String deliveryWaybilNumber;

    @TableField(value = "delivery_plate_number")
    @Schema(description="提货车辆车牌号")
    private String deliveryPlateNumber;

    @TableField(value = "vehicle_emission_standards")
    @Schema(description="车辆排放标准（如：国五、国六）")
    private String vehicleEmissionStandards;

    @TableField(value = "delivery_driver")
    @Schema(description="提货司机姓名")
    private String deliveryDriver;

    @TableField(value = "delivery_phone")
    @Schema(description="提货人联系电话")
    private String deliveryPhone;

    @TableField(value = "driver_id_card")
    @Schema(description="司机身份证号码")
    private String driverIdCard;

    @TableField(value = "status")
    @Schema(description="状态：1.待受理，2.发货中，3.出库完成，4.已撤回")
    private Integer status;

    @TableField(value = "warehouse_outbound_order_code")
    @Schema(description="出库订单编号")
    private String warehouseOutboundOrderCode;

    @TableField(value = "sources")
    @Schema(description="数据来源")
    private String sources;

    @TableField(value = "inventory_type_id")
    @Schema(description="出入库类型id")
    private Long inventoryTypeId;


}
